#ifndef _VL_C_DIRTY_DEF__H_
#define _VL_C_DIRTY_DEF__H_

#include "support/vl_container.h"
#include "support/vl_valid.h"
#include "vl_c_config_def.h"

namespace VL {

/**
 * @Author: CimZzz
 * @Date: 2022-08-21 00:10:50
 * 
 * C / C++ Dirty 数据集
 */
struct CDirtyBundle {
	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 00:12:20
	 * 
	 * 目标文件搜集器指针
	 */
	std::shared_ptr<FileCollector> targetFileCollectorPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 17:28:58
	 * 
	 * 测试目标文件搜集器指针
	 */
	std::shared_ptr<FileCollector> testTargetFileCollectorPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 00:19:40
	 * 
	 * 可执行项目列表指针
	 */
	std::shared_ptr<std::vector<std::shared_ptr<CExecutableBundle>>> execBundlesPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 00:19:40
	 * 
	 * 库项目列表指针
	 */
	std::shared_ptr<std::vector<std::shared_ptr<CLibraryBundle>>> libBundlesPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 00:19:40
	 * 
	 * 测试用例项目列表指针
	 */
	std::shared_ptr<std::vector<std::shared_ptr<CTestBundle>>> testBundlesPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 00:48:03
	 * 
	 * 源文件验证流指针
	 */
	std::shared_ptr<ValidStream> sourceValidStreamPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-21 17:33:05
	 * 
	 * 目标文件验证流指针
	 */
	std::shared_ptr<ValidStream> targetValidStreamPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-22 00:11:04
	 * 
	 * 可执行文件验证流指针
	 */
	std::shared_ptr<ValidStream> execStreamPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-22 08:25:03
	 * 
	 * 动态库文件验证流指针
	 */
	std::shared_ptr<ValidStream> dynamicStreamPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-22 08:25:29
	 * 
	 * 静态库文件验证流指针
	 */
	std::shared_ptr<ValidStream> staticStreamPtr;

	/**
	 * @Author: CimZzz
	 * @Date: 2022-08-22 09:10:48
	 * 
	 * 头文件验证流指针
	 */
	std::shared_ptr<ValidStream> headerStreamPtr;
};

}

#endif // _VL_C_DIRTY_DEF__H_
